package com.richard.arithmetic.Q1_palindromic_number.prototype;

/**
 * 求用十进制、二进制、八进制表示都是回文数的所有数字中，
 * 大于十进制数 10 的最小值。
 */
public class prototype {

        public static void main(String[] args) {
            int i = 11;

            while (true) {

                if (isRevser(String.valueOf(i)) &&
                    isRevser(Integer.toBinaryString(i)) &&
                    isRevser(Integer.toOctalString(i))) {
                    System.out.println(i + ", base 2:" + Integer.toBinaryString(i)
                                         + ", base 8:" + Integer.toOctalString(i));
                    break;
                }
                i++;
            }
            //利用StringBuilder
            i= 11;
            while (true) {
                if (isRevserBySbuilder(String.valueOf(i)) &&
                    isRevserBySbuilder(Integer.toBinaryString(i)) &&
                    isRevserBySbuilder(Integer.toOctalString(i))) {
                    System.out.println(i + ", base 2:" + Integer.toBinaryString(i)
                                         + ", base 8:" + Integer.toOctalString(i));
                    break;
                }
                i++;
            }

        }
    /**
     * 判断是否是回文
     */

        private static boolean isRevser(String string) {
            char[] charArray = string.toCharArray();
            int i = 0;
            int j = charArray.length-1;
            while(i<j) {
                if (charArray[i] != charArray[j]) {
                    return false;
                }
                i++;
                j--;
            }
            return true;
        }
    /**
     *  判断是否是回文
     */

        private static boolean isRevserBySbuilder(String string) {
            StringBuilder stringBuilder = new StringBuilder(string);
            stringBuilder.reverse();
//	if (stringBuilder.equals(string) )
//	{ StringBuilder里没有重学equals方法，equals不能比较对象的值，默认是比较对象地址。此方式不可以
//	if (stringBuilder.toString().equals(string) )
//	{ 此方式可以，stringBuilder转为string使用；
//	或用下面sting.contentEquals()，sting比较stringbuilder内容
            if (string.contentEquals(stringBuilder)) {
                return true;
            }
            return false;
        }


}
